from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


class Base():
    def __init__(self):
        # 设备集
        cap = {
          "platformName": "Android",
          "appium:deviceName": "emulator-5554",
          "appium:automationName": "uiautomator2",
          "appium:appPackage": "com.achievo.vipshop",
          "appium:appActivity": ".homepage.activity.MainActivity",
          "appium:noReset": True
        }
        # 远程连接
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',cap)
        # 隐式等待
        self.driver.implicitly_wait(20)

    # 找元素
    def find_ele(self,loc):
        ele = self.driver.find_element(*loc)
        return ele

    # 显示等待
    def find_ele_wait(self,loc):
        ele = WebDriverWait(self.driver,20).until(EC.element_to_be_clickable(loc))
        return ele

    # 退出驱动
    def tuichu(self):
        self.driver.quit()

    # 截图
    def jietu(self,a):
        self.driver.save_screenshot(a)

    # 轻敲
    def qingqiao(self,a,b):
        self.driver.tap([(a,b)],200)

    # 滑动
    def huadong(self,a,b,c,d):
        self.driver.swipe(a,b,c,d,200)